﻿/* -----------------------------------------------------------------------
 * 
 * Copyright © 2010, Eskol Team
 * All rights reserved.
 * 
 * http://electrocucaracha.com
 * 
 * 
 * $Id              : $
 * Description      : Accion que actualiza un titular en la base de datos 
 *      utilizando la tecnologia LINQ.
 * 
 * $Author          : $
 * $Rev             : $
 * $LastChangedDate : $
 * $LastChangedBy   :
 * 
 * -----------------------------------------------------------------------
*/

#region Imports

using Entidades = Electrocucaracha.AdminPersonal.DAO.Entidades;
using Electrocucaracha.AdminPersonal.DAO.Acciones;
using Common.Logging;

#endregion

namespace Electrocucaracha.AdminPersonal.DAO.Linq.Acciones.Titular
{
	/// <summary>
	/// Accion que actualiza un titular en la base de datos utilizando la tecnologia LINQ
	/// </summary>
	class ActualizarAccion : Accion
	{
		#region Constantes

		#endregion

		#region Miembros

		private static readonly ILog log = LogManager.GetLogger(typeof(ActualizarAccion));
		private static readonly string version = "$Id:$";

		#endregion

		#region Propiedades

		#endregion

		#region Constructores

		#endregion

		#region Funciones

		#endregion

		#region IAccion

		/// <summary>
		/// Accion que actualiza en la base de datos el titular solicitado.
		/// </summary>
		/// <exception cref="Electrocucaracha.AdminPersonal.DAO.DAOException">
		/// En caso de que el parametro proporsionado no sea un titular o se
		/// encuentre vacio.
		/// </exception>
		public override void Ejecutar()
		{
			log.Info("Inicio Titular.ActualizarAccion.Ejecutar()");

			parametros[OUTPUT] = false;
			Entidades.TitularDTO titular = parametros[INPUT] as Entidades.TitularDTO;
			if (titular != null)
			{
				log.Debug("Id : " + titular.Id);

				dbAdminPersonalDataContext dbAdmin = new dbAdminPersonalDataContext();
				parametros[OUTPUT] = dbAdmin.ActualizarTitular(titular.Id, titular.Nombres, titular.ApellidoPaterno, titular.ApellidoMaterno, titular.Activo) >= 0;

				log.Debug("OUTPUT : " + parametros[OUTPUT]);
			}
			else
			{
				log.Error("No se pudo obtener el titular a actualizar");
				throw new DAOException("No se pudo obtener el titular a actualizar");
			}

			log.Info("Fin Titular.ActualizarAccion.Ejecutar()");
		}//Ejecutar

		#endregion

	}//ActualizarAccion
}//Electrocucaracha.AdminPersonal.DAO.Linq.Acciones.Titular

/**
 * -----------------------------------------------------------------------
 * $Log $ 
*/